home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 4 / Night Owl's Shareware - PDSI-004-1 - Wayzata Technology (1990).iso / 029a / fixdtr45.txt < prev    next >
Text File  |  1989-01-14  |  4KB  |  206 lines

  1.  
  2. January 14, 1989
  3.  
  4.  
  5. Microsoft's solution to 'fixing' the DTR drop problem with QB 4.5
  6. when closing the communications port by outputing a 3 to the 
  7. modem status register, is not a sound or reliable solution.
  8.  
  9. Many modems simply respond too quickly to the loss of DTR.
  10.  
  11. The correct solution is to of course not turn DTR off in the
  12. first place.  However, after many years and many versions of
  13. Quick Basic, it is apparent that Microsoft either does not listen
  14. to its customers or they simply do not care.
  15.  
  16. Sound programming practices dictate that when you directly manipulate
  17. a hardware port, you restore that port to the exact same conditions
  18. it had prior to your touching it.  In the case of DTR, this means
  19. that if DTR were ON when the QB program loaded, then DTR should
  20. remain ON when the QB program ends.  If DTR was OFF when the program
  21. loaded, then fine, turn it OFF when the program ends.
  22.  
  23. To the end that it is an ongoing struggle to get Microsoft to listen
  24. to the needs of the programmer, the following patches are provided
  25. to enable you to patch your copies of BRUN45.EXE and BCOM45.LIB.
  26.  
  27.  
  28. Before beginning, make sure you have backup copies of BRUN45.EXE
  29. and BCOM45.LIB.
  30.  
  31. BCOM45.LIB DTR Patch
  32. --------------------
  33.  
  34. With Debug in a DOS path, type :
  35.  
  36.   debug bcom45.lib
  37.  
  38. Type :
  39.  
  40.   s cs:0 ffff b0 00 e3 01
  41.  
  42. Debug should show :
  43.  
  44.   xxxx:1529
  45.  
  46.   where xxxx can be any number depending upon where Debug loaded the
  47.   program into memory.  In any case, the number is not important.
  48.  
  49. Type :
  50.  
  51.   u 1529
  52.  
  53. Debug should show :
  54.  
  55.   MOV   AL,00
  56.   JCXZ  152E
  57.   INC   AX
  58.   ADD   DX,+04
  59.   OUT   DX,AL
  60.  
  61. This is where QB graciously resets the comm port to parameters it thinks
  62. the comm port should have.
  63.  
  64. To fix the problem, Type :
  65.  
  66.   a 1529
  67.  
  68.   mov   al,01
  69.   [Enter]
  70.  
  71.   a 152d
  72.  
  73.   nop
  74.   [Enter]
  75.  
  76.   where [Enter] is the Enter key (do not type the characters)!
  77.  
  78.  
  79. To verify that you typed everything correctly, Type
  80.  
  81.   u 1529
  82.  
  83. Debug should show :
  84.  
  85.   MOV   AL,01
  86.   JCXZ  152E
  87.   NOP
  88.   ADD   DX,+04
  89.   OUT   DX,AL
  90.  
  91.  
  92. To save the corrections Type :
  93.  
  94.   w
  95.  
  96. Debug should show :
  97.  
  98.   Writing 35EF7 bytes
  99.  
  100.  
  101. Now type Q and you are finished patching BCOM45.LIB
  102.  
  103.  
  104.  
  105. BRUN45.EXE DTR Patch
  106. --------------------
  107.  
  108. First, rename BRUN45.EXE to BRUN45.X
  109.  
  110. With Debug in a DOS path, type :
  111.  
  112.   debug BRUN45.X
  113.  
  114. Type :
  115.  
  116.   s cs:0 ffff b0 00 e3 01
  117.  
  118. Debug should show :
  119.  
  120.   xxxx:9E78
  121.  
  122.   where xxxx can be any number depending upon where Debug loaded the
  123.   program into memory.  In any case, the number is not important.
  124.  
  125. Type :
  126.  
  127.   u 9e78
  128.  
  129. Debug should show :
  130.  
  131.   MOV   AL,00
  132.   JCXZ  9E7D
  133.   INC   AX
  134.   ADD   DX,+04
  135.   OUT   DX,AL
  136.  
  137. This is where QB graciously resets the comm port to parameters it thinks
  138. the comm port should have.
  139.  
  140. To fix the problem, Type :
  141.  
  142.   a 9e78
  143.  
  144.   mov   al,01
  145.   [Enter]
  146.  
  147.   a 9e7c
  148.  
  149.   nop
  150.   [Enter]
  151.  
  152.   where [Enter] is the Enter key (do not type the characters)!
  153.  
  154.  
  155. To verify that you typed everything correctly, Type
  156.  
  157.   u 9e78
  158.  
  159. Debug should show :
  160.  
  161.   MOV   AL,01
  162.   JCXZ  9E7D
  163.   NOP
  164.   ADD   DX,+04
  165.   OUT   DX,AL
  166.  
  167.  
  168. To save the corrections Type :
  169.  
  170.   w
  171.  
  172. Debug should show :
  173.  
  174.   Writing 12E80 bytes
  175.  
  176.  
  177. Now type Q and you are finished patching BRUN45.X
  178.  
  179. Rename BRUN45.X back to BRUN45.EXE
  180.  
  181.  
  182.  
  183. The ever powerful Code View debugger was used to to find these
  184. addresses by tracing a QB program which had but two statments :
  185.  
  186.   OPEN com port
  187.   CLOSE com port
  188.  
  189.  
  190.  
  191. Any questions may be addressed to :
  192.  
  193.    Kenny Gardner
  194.    The Crow's Nest BBS
  195.    (714)493-3819
  196.  
  197.      CIS : 76054,210
  198.    Genie : K.L.Gardner
  199.  
  200.  
  201. This text file is (C) Copyright 1989 by GAP Development Company
  202. Permission is hereby granted to distribute this text, and use
  203. the information contained herein provided that this notice and
  204. the contents of this file not be altered.
  205.  
  206.